package cn.com.nes.site.service.crm.opportunity.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@ApiModel(value = "查询商机内容出参模型")
@Data
public class OpportunityInfoDto {


    // 不明确分类的参数
    @ApiModelProperty(value = "相关线索")
    private String clueId;

    @ApiModelProperty(value = "线索名称")
    private String clueName;

    @ApiModelProperty(value = "线索项目地址")
    private String clueProjectAddress;

    @ApiModelProperty(value = "线索项目面积")
    private String clueProjectArea;

    @ApiModelProperty(value = "图片1")
    private String cluePicture1;

    @ApiModelProperty(value = "压缩1")
    private String clueImgReal1;

    @ApiModelProperty(value = "不压缩1")
    private String clueImgRealBig1;

    @ApiModelProperty(value = "图片2")
    private String cluePicture2;

    @ApiModelProperty(value = "压缩2")
    private String clueImgReal2;

    @ApiModelProperty(value = "不压缩2")
    private String clueImgRealBig2;

    @ApiModelProperty(value = "图片3")
    private String cluePicture3;

    @ApiModelProperty(value = "压缩3")
    private String clueImgReal3;

    @ApiModelProperty(value = "不压缩3")
    private String clueImgRealBig3;

    @ApiModelProperty(value = "所属客户")
    private String customerId;

    @ApiModelProperty(value = "所属客户名称")
    private String customerName;

    @ApiModelProperty(value = "客户负责人")
    private String customerPersonInCharge;

    @ApiModelProperty(value = "客户联系电话")
    private String customerPhone;

    @ApiModelProperty(value = "客户地址")
    private String customerAddress;

    @ApiModelProperty(value = "企业名称")
    private String companyName;

    @ApiModelProperty(value = "图片1")
    private String picture1;

    @ApiModelProperty(value = "压缩1")
    private String imgReal1;

    @ApiModelProperty(value = "不压缩1")
    private String imgRealBig1;

    @ApiModelProperty(value = "图片2")
    private String picture2;

    @ApiModelProperty(value = "压缩2")
    private String imgReal2;

    @ApiModelProperty(value = "不压缩2")
    private String imgRealBig2;

    @ApiModelProperty(value = "图片3")
    private String picture3;

    @ApiModelProperty(value = "压缩3")
    private String imgReal3;

    @ApiModelProperty(value = "不压缩3")
    private String imgRealBig3;

    @ApiModelProperty(value = "设备数量")
    private Integer equiNumber;

    @ApiModelProperty(value = "建筑性质")
    private String buildNature;

    @ApiModelProperty(value = "建筑种类")
    private String bulidType;

    @ApiModelProperty(value = "设备规格")
    private String equiSpec;

    @ApiModelProperty(value = "设备规格参数")
    private String equiSpecSize;


    // 项目承建信息
    @ApiModelProperty(value = "采购方采购方式")
    private String cgfType;

    @ApiModelProperty(value = "采购方联系方式")
    private String cgfPhone;

    @ApiModelProperty(value = "设计方公司名")
    private String sjfCompanyName;

    @ApiModelProperty(value = "设计方联系方式")
    private String sjfPhone;

    @ApiModelProperty(value = "承建方公司名")
    private String cjfCompanyName;

    @ApiModelProperty(value = "承建方联系方式")
    private String cjfPhone;

    @ApiModelProperty(value = "投资方公司名")
    private String tzfCompanyName;

    @ApiModelProperty(value = "投资方联系方式")
    private String tzfPhone;

    @ApiModelProperty(value = "监理方公司名")
    private String jlfCompanyName;

    @ApiModelProperty(value = "监理方联系方式")
    private String jlfPhone;

    @ApiModelProperty(value = "进场时间")
    private String mobilizationTime;

    @ApiModelProperty(value = "竣工时间")
    private String completeTime;

    @ApiModelProperty(value = "订货时间")
    private String orderGoodsTime;

    // 通用参数

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty(value = "")
    private String jsonData;

    @ApiModelProperty(value = "模板ID")
    private String templateId;

    @ApiModelProperty(value = "商机id")
    private String uuid;

    @ApiModelProperty(value = "商机名称")
    private String opportunityName;

    @ApiModelProperty(value = "商机阶段 新商机 跟进中 商机成交（签订合同，生成项目）   商机流失")
    private String opportunityStage;

    @ApiModelProperty(value = "商机阶段 新商机 跟进中 商机成交（签订合同，生成项目）   商机流失")
    private String opportunityStageName;

    @ApiModelProperty(value = "商机类型：设备购买 售后维修  项目洽谈")
    private String opportunityType;

    @ApiModelProperty(value = "商机类型：设备购买 售后维修  项目洽谈")
    private String opportunityTypeName;

    @ApiModelProperty("商务项目分类")
    private String opportunityClassification;

    @ApiModelProperty("商务项目分类名称")
    private String opportunityClassificationName;

    @ApiModelProperty("商机负责人ID")
    private String opportunityOwnerId;

    @ApiModelProperty(value = "客户性质")
    private String customerNature;

    @ApiModelProperty(value = "客户性质名称")
    private String customerNatureName;

    @ApiModelProperty("房屋ID")
    private String houseId;

    @ApiModelProperty(value = "行政区划")
    private String xzqhdm;

    @ApiModelProperty(value = "行政区划名称")
    private String xzqhmc;

    @ApiModelProperty(value = "行政区划全称")
    private String xzqhqc;

    @ApiModelProperty(value = "项目地址")
    private String projectAddress;

    @ApiModelProperty(value = "项目面积")
    private BigDecimal projectArea;

    @ApiModelProperty(value = "联系人")
    private String personInCharge;

    @ApiModelProperty("联系电话")
    private String personInChargePhone;

    @ApiModelProperty(value = "性别")
    private String sex;

    @ApiModelProperty(value = "备注")
    private String memo;

    @ApiModelProperty(value = "经度")
    private BigDecimal longitude;

    @ApiModelProperty(value = "纬度")
    private BigDecimal latitude;

    @ApiModelProperty(value = "商机金额")
    private BigDecimal opportunityMoney;

    @ApiModelProperty(value = "预计成交日期")
    private Date estimatedClosingDate;


    // 政府商务项目 政府信息

    @ApiModelProperty("允许的服务区域范围 （覆盖范围）")
    private List<OpportunityAreaCodeDTO> allowAreaCodes;

    @ApiModelProperty("计划安装人数")
    private Integer planInstallPeoples;

    @ApiModelProperty("改造类型")
    private String renovationType;

    @ApiModelProperty("改造类型名称")
    private String renovationTypeName;

    @ApiModelProperty(value = "补贴方式", notes = "政府商务（终端客户）项目必须填写，0-按户补贴，1-按平米补贴")
    private String allowanceType;

    @ApiModelProperty("补贴方式名称")
    private String allowanceTypeName;

    @ApiModelProperty(value = "补贴金额", notes = "政府商务（终端客户）项目必须填写，根据补贴方式设置")
    private BigDecimal allowanceAmountOfMoney;

    @ApiModelProperty(value = "补贴对象", notes = "01-厂家，02-农户")
    private String allowanceTarget;

    @ApiModelProperty(value = "补贴对象名称", notes = "01-厂家，02-农户")
    private String allowanceTargetName;

    @ApiModelProperty(value = "补贴下限")
    private BigDecimal allowanceDown;

    @ApiModelProperty(value = "补贴上限")
    private BigDecimal allowanceUp;

    @ApiModelProperty("计划年度")
    private String planYear;

    @ApiModelProperty("允许的能源类型")
    private List<String> allowEnergyTypes;

    @ApiModelProperty("允许的能源类型名称")
    private List<String> allowEnergyTypeNames;

    @ApiModelProperty(hidden = true)
    private String allowDeviceEnergyType;

    @ApiModelProperty("允许的设备能源分类范围")
    private List<String> allowDeviceEnergyTypes;

    @ApiModelProperty(hidden = true)
    private String allowDeviceBrandType;

    @ApiModelProperty("允许的设备品牌分类范围")
    private List<String> allowDeviceBrandTypes;

    @ApiModelProperty("允许的设备型号范围")
    private List<OpportunityDeviceModelDTO> allowDeviceModels;


    // 零售、政府终端项目 补贴信息
    @ApiModelProperty(value = "户籍情况：01-本地，02-非本地")
    private String householdRegistration;

    @ApiModelProperty(value = "户籍情况：01-本地，02-非本地")
    private String householdRegistrationName;

    @ApiModelProperty(value = "客户编号-电表号")
    private String electricityMeterNumbers;

    @ApiModelProperty(value = "客户编号-燃气表号")
    private String gasMeterNumbers;

    @ApiModelProperty(value = "表号")
    private String meterNumber;

    @ApiModelProperty(value = "门牌号")
    private String houseNumber;

    @ApiModelProperty("预期金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "申报类别")
    private String categoryOfDeclaration;

    @ApiModelProperty(value = "申报类别")
    private String categoryOfDeclarationName;

    @ApiModelProperty(value = "是否安装光伏")
    private Boolean installPhotovoltaic;

    @ApiModelProperty("能源类型")
    private String energyType;

    @ApiModelProperty("能源类型名称")
    private String energyTypeName;

    @ApiModelProperty(value = "新申报面积")
    private BigDecimal newlyDeclaredArea;

    @ApiModelProperty(value = "原申报面积")
    private BigDecimal originalDeclaredArea;

    @ApiModelProperty(value = "个人缴纳金额", notes = "设备总金额-补贴金额")
    private BigDecimal personalPayment;


    // 建筑信息
    @ApiModelProperty("商务项目建筑信息")
    private OpportunityHouseDTO opportunityHouseDTO;

    @ApiModelProperty("是否农村")
    private String isVillage;

    @ApiModelProperty("房屋类型")
    private String houseType;

    @ApiModelProperty("采暖面积")
    private BigDecimal heatingArea;

    @ApiModelProperty("常用采暖面积")
    private BigDecimal commonHeatingArea;

    @ApiModelProperty("建筑层高")
    private BigDecimal buildingHeight;

    @ApiModelProperty("建筑层高")
    private String buildingStructure;

    @ApiModelProperty("外墙厚度")
    private String outerWallThickness;

    @ApiModelProperty("外墙保温")
    private String outerWallKeepWarm;

    @ApiModelProperty("供暖方式")
    private String heatingMode;

    @ApiModelProperty("机组安装位置")
    private String installPosition;

    @ApiModelProperty("房屋用途")
    private String housePerpose;

    @ApiModelProperty("房屋间数")
    private BigDecimal roomCount;

    @ApiModelProperty("图纸编号")
    private String drawingNo;

    @ApiModelProperty("设计单位")
    private String designCompany;

    @ApiModelProperty("窗户类型")
    private String windowType;

    @ApiModelProperty("设计热负荷")
    private BigDecimal designHeatingLoad;

    @ApiModelProperty("房屋朝向")
    private String houseDirection;

    @ApiModelProperty("末端改造状态")
    private String endState;

    @ApiModelProperty("采暖末端")
    private String heatingEnd;

    @ApiModelProperty("是否可以创建施工项目")
    private boolean ableCreateConstructionPorject;

    @ApiModelProperty("销售单ID")
    private Long saleOrderId;

    @ApiModelProperty("销售单提交")
    private Boolean saleOrderCommit;

    @ApiModelProperty("销售单状态")
    private Integer saleOrderStatus;

    @ApiModelProperty("是否有安装工单")
    private Boolean haveWorkOrder;
    @ApiModelProperty("申请种类0不够八年1够八年")
    private String applicationType;
    @ApiModelProperty("低保户或五保户")
    private String dbhhwbh;
}
